home *** CD-ROM | disk | FTP | other *** search
- <?php
- /*
- ** $Id: login.php,v 1.4 2005/04/04 10:42:27 hmailserver Exp $
- **
- ** hMailServer - Web interface
- **
- ** File formatted using TAB size 4
- **
- ** Get hMailserver at http://www.hmailserver.com
- **
- ** Author: Steen Rab°l <srabol@mail.tele.dk>
- ** Copyright (c) 2004, Steen Rab°l <srabol@mail.tele.dk>
- **
- ** This program is free software; you can redistribute it and/or modify
- ** it under the terms of the GNU General Public License as published by
- ** the Free Software Foundation; either version 2 of the License, or
- ** (at your option) any later version.
- **
- ** You may not change or alter any portion of this comment or credits
- ** of supporting developers from this source code or any supporting
- ** source code which is considered copyrighted (c) material of the
- ** original comment or credit authors.
- **
- ** This program is distributed in the hope that it will be useful,
- ** but WITHOUT ANY WARRANTY; without even the implied warranty of
- ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- ** GNU General Public License for more details.
- **
- ** You should have received a copy of the GNU General Public License
- ** along with this program; if not, write to the Free Software
- ** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- **
- */
-
- $function = hmailGetVar("function","");
-
- if($function == "dologin")
- {
-
- $username = hmailGetVar("username","");
- $password = hmailGetVar("password","");
-
- if (Login($username, $password))
- {
- header("refresh: 0; url=" . $hmail_config['rooturl']);
- exit();
- }
-
- }
-
- $hmailSmarty->assign("pagecontent", $hmailSmarty->fetch('login.tpl'));
-
- function Login($username, $password)
- {
- global $obBaseApp;
- global $hmailSmarty;
-
- if($username == "" || $password == "")
- {
- $hmailSmarty->assign("loginerror", hmailGetLocaleText("must_specify_up"));
- return false;
- }
-
- // Split up the username in mailbox and domain.
- $atpos = strpos($username, "@");
-
- if ($atpos === FALSE)
- {
- $hmailSmarty->assign("loginerror", hmailGetLocaleText("must_specify_at"));
- return false;
- }
-
- $mailbox = substr($username, 0, $atpos);
- $domain = substr($username, $atpos + 1);
-
- // Fetch domain
- $obDomains = $obBaseApp->Domains();
- $obDomain = $obDomains->ItemByName($domain);
-
- if ($obDomain === NULL)
- {
- $hmailSmarty->assign("loginerror", hmailGetLocaleText("incorrect_user_or_pw"));
- return false;
- }
-
- $obAccount = $obDomain->Accounts->ItemByAddress($username);
-
- if ($obAccount === NULL)
- {
- $hmailSmarty->assign("loginerror", hmailGetLocaleText("incorrect_user_or_pw"));
- return false;
- }
-
- if ($obAccount->ValidatePassword($password) === FALSE)
- {
- $hmailSmarty->assign("loginerror", hmailGetLocaleText("incorrect_user_or_pw"));
- return false;
- }
-
- $_SESSION['loggedin'] = 1;
- $_SESSION['adminlevel'] = $obAccount->AdminLevel();
- $_SESSION['username'] = $username;
- $_SESSION['domainid'] = $obDomain->ID();
- $_SESSION['accountid'] = $obAccount->ID();
-
- return true;
- }
-
-
- ?>